#!/bin/bash

# 定义要写入的文件
output_file="output.txt"

# 显卡型号与HSA_OVERRIDE_GFX_VERSION的对应关系
declare -A version_map=(
    ["1"]="RX 7900 XTX, RX 7900 XT, RX 7900 GRE, PRO W7900, PRO W7800"
    ["2"]="RX 7800 XT, RX 7700 XT, PRO W7700"
    ["3"]="RX 7600"
    ["4"]="RX 6900 XT, RX 6950 XT, RX 6800 XT, RX 6800, PRO V620, PRO W6800"
    ["5"]="RX 6700 XT, RX 6750 XT, RX 6700"
    ["6"]="RX 6600 XT, RX 6600, RX 6650 XT, PRO W6600"
    ["7"]="Pro W5500"
    ["8"]="VII, Pro VII"
)

# HSA_OVERRIDE_GFX_VERSION对应关系
declare -A gfx_version_map=(
    ["1"]="11.0.0"
    ["2"]="11.0.1"
    ["3"]="11.0.2"
    ["4"]="10.3.0"
    ["5"]="10.3.1"
    ["6"]="10.3.2"
    ["7"]="10.1.2"
    ["8"]="9.0.6"
)

# 显示可用的HSA_OVERRIDE_GFX_VERSION选项
echo "请选择对应的显卡版本编号："
for i in {1..8}; do
    echo "$i: ${version_map[$i]}"
done

# 读取用户输入
read -p "输入显卡版本编号（或输入 'N' 退出）: " version_choice

# 验证用户输入并查找对应的版本号
if [[ "$version_choice" == "N" || "$version_choice" == "n" ]]; then
    echo "退出脚本。"
    exit 0
elif [[ -v version_map[$version_choice] ]]; then
    found_version=${gfx_version_map[$version_choice]}
    echo "选择的HSA_OVERRIDE_GFX_VERSION: $found_version"
else
    echo "无效的显卡版本编号。"
    echo "请重新运行脚本，并输入有效的编号。"
    exit 1
fi

# 设置环境变量并输出到终端
export HSA_OVERRIDE_GFX_VERSION=$found_version
echo "HSA_OVERRIDE_GFX_VERSION=$HSA_OVERRIDE_GFX_VERSION"

# 将HSA_OVERRIDE_GFX_VERSION写入output.txt的第3行
if [ ! -f "$output_file" ]; then
    echo "文件$output_file不存在，创建新文件。"
    echo -e "\n\nHSA_OVERRIDE_GFX_VERSION=$HSA_OVERRIDE_GFX_VERSION" > "$output_file"
else
    sed -i "3s/.*/HSA_OVERRIDE_GFX_VERSION=$HSA_OVERRIDE_GFX_VERSION/" "$output_file"
fi

echo "HSA_OVERRIDE_GFX_VERSION已经写入$output_file的第3行。"
